package com.atguigu.algorithm;
public class HihoString {
    public static void main(String[] args) {
        System.out.println(findTheMinHihoSting("happyhahaiohell"));
    }
    public static int findTheMinHihoSting(String str){
        int j=-1;
        int min=Integer.MAX_VALUE;
        for(int i=0;i<str.length();i++){
            char ch=str.charAt(i);
            if(check(ch)){ // i停下
                if(j==-1){ //j的第一次定位
                    j=i+1;
                }
                while(j<str.length()){
                    char ch2=str.charAt(j);
                    if(check(ch2) && containsAll(str,i,j)){
                        if(check(str,i,j)&& j-i+1<min){
                            min=j-i+1;
                        }
                        break; //j停下
                    }
                    j++;  //j继续扫描
                }
            }
        }
        return min;
    }
    public static boolean check(String str,int i,int j){
        int c1=0,c2=0,c3=0;
        for(int k=i;k<=j;k++){
            char ch=str.charAt(k);
            if(ch=='h')c1++;
            if(ch=='i')c2++;
            if(ch=='o')c3++;
        }
        return c1==2 && c2==1 && c3==1;
    }
    public static boolean containsAll(String str,int i,int j){
        int c1=0,c2=0,c3=0;
        for(int k=i;k<=j;k++){
            char ch=str.charAt(k);
            if(ch=='h')c1++;
            if(ch=='i')c2++;
            if(ch=='o')c3++;
        }
        return c1>=2 && c2>=1 && c3>=1;
    }
    public static boolean check(char ch){
        if(ch=='h' || ch=='i' || ch=='o'){
            return true;
        }
        return false;
    }
}
